Performance monitors, such as software profilers or hardware performance monitors, can be used in integrated circuits or computer systems to gather various data on the operations of the integrated circuits or computer systems. Compared to software profilers, hardware performance monitors provide low-overhead access to detailed performance information related to functional blocks of the integrated circuits or computer system, such as CPU, network, caches and main memory. Another benefit of using hardware performance monitors is that, in general, no source code modifications are needed.